import {TOKEN, USERINFO} from "@/constants/KEY";

export function getUserRoleLocalStorage() {
  // 取storage中的UserRole
  let userRole = (localStorage.getItem('form') || '{}').replace(/'/g, '"')
    .replace(/&quot;/g, '"'); // 修正可能的JSON格式问题
  userRole = JSON.parse(userRole).accountType || null; // 确保accountType是有效的，否则设为null
  return userRole
}

// 清除某些本地存储的信息
export function clearSomeLocalStorage() {
  // localStorage.clear();
  localStorage.removeItem(TOKEN);
  localStorage.removeItem(USERINFO);
}

export function setUserRoleLocalStorage(newAccountType) {
  // 设置storage中的UserRole
  // 尝试从localStorage中获取'form'项
  let formItem = localStorage.getItem('form');

  // 如果formItem不存在或不是有效的JSON字符串，则初始化为一个空对象
  if (!formItem || !formItem.trim()) {
    formItem = '{}';
  }

  // 将formItem解析为JSON对象
  let formObj = JSON.parse(formItem);

  // 设置accountType的值
  formObj.accountType = newAccountType;

  // 将修改后的对象转换回JSON字符串，并存储回localStorage
  localStorage.setItem('form', JSON.stringify(formObj));
  console.log('设置的Role值为',getUserRoleLocalStorage())

}

// 取LocalStorage中token字段的值
export function getTokenLocalStorage() {
  // 尝试从localStorage中获取键为'token'的值
  // 如果找到了值，就返回它；否则返回null（或者你可以决定返回一个默认值）
  // console.log(localStorage.getItem('token'))
  return localStorage.getItem('token');
}

// 取LocalStorage中userInfo中的id
export function getUserIDLocalStorage() {
  const userInfoString = localStorage.getItem('userInfo');

  // 将获取到的字符串值转换成JavaScript对象
  const userInfoObject = JSON.parse(userInfoString);

  // 从转换后的对象中获取id属性的值
  const userId = userInfoObject ? userInfoObject.id : -1; // 使用条件运算符来处理userInfoObject为null或undefined的情况
  return userId;
}


// 取LocalStorage中userInfo中的姓名
export function getUserNameLocalStorage() {
  let userInfoString = localStorage.getItem('userInfo');
  // console.log('userInfoString:',userInfoString)

  // 获取本地存储的教师或学生姓名
  const userInfoObject = JSON.parse(userInfoString);
  let name = userInfoObject ? userInfoObject.teacherName : null;
  //  userInfoObject.teacherName 为 null或undefined时取studentName
  if(name === null || !name){
    name = userInfoObject ? userInfoObject.studentName : null;
  }

  // 从转换后的对象中获取name属性的值
  return name;
}

// 取LocalStorage中的头像中的头像
export function getUserAvatarLocalStorage() {
  let userInfoString = localStorage.getItem('userInfo');
  // console.log('userInfoString:',userInfoString)

  // 获取本地存储的教师或学生头像
  const userInfoObject = JSON.parse(userInfoString);
  let avatar = userInfoObject ? userInfoObject.avatar : null;

  // 从转换后的对象中获取avatar属性的值
  return avatar;
}

// 更新LocalStorage中的头像中的头像路径
export function updateUserInfoLocalStorage(userInfo) {
  localStorage.removeItem(USERINFO);
  localStorage.setItem(USERINFO, JSON.stringify(userInfo));
}
